2.06. Метрика, мониторинг и логирование
Метрика, мониторинг и логирование
Системный администратор обеспечивает стабильность системы. Стабильность – это способность системы:
- оставаться доступной для пользователей;
- работать без сбоев (критических ошибок);
- выдерживать нагрузку;
- быстро восстанавливаться после инцидентов.
Мониторинг - процесс отслеживания работы системы для обеспечения её стабильности. Для измерения стабильности используются метрики – единицы измерения. Основные метрики:
| Категория | Объект мониторинга | Инструменты |
|---|---|---|
| Железо | CPU, RAM, диски, сеть | Prometheus, Zabbix, Netdata |
| Сервисы | Доступность БД, веб-сервера | Grafana, Nagios |
| Бизнес-логика | Количество заявок, заказов, ошибки | ELK Stack (Elasticsearch, Kibana) |
Данные собираются при помощи:
- агентов (специальных программ);
- SNMP (для сетевого оборудования);
- логов (текстовых записей о событиях).
В случае наступления определённых событий, можно настроить автоматизацию отправки предупреждений – «алертинг», к примеру, настроив в Prometheus отправку на электронную почту.
Помимо нагрузки, важно фиксировать, кто, что и когда делал. Допустим, что делали пользователи, как себя вела программа, или в какое время возникла ошибка. Эта фиксация осуществляется в логах (от английского log – журнал). Представьте, что у вас есть персональный секретарь, который записывает всё, что происходит – это логгер.
Логирование – процесс записи и детализации событий. Логи бывают следующих типов:
- системные логи (содержат сведения об ОС, драйверах);
- логи приложений (ошибки сервера, к примеру);
- логи аудита (попытки входа, авторизации, SSH, sudo).
Но работать с массивами логов удобнее при помощи инструментов, допустим, Grafana Loki для агрегации логов.
Пример, как с этим работать:
- разворачиваете ПО на сервере и устанавливаете все компоненты;
- устанавливаете системы мониторинга и логирования;
- запускаете систему и ПО;
- возникла проблема – сервер «лёг» или диск заполнен;
- в первую очередь проверяем логи и изучаем, что произошло;
- определяем временной промежуток, собираём всё, что нужно;
- исправляем проблемы и мониторим работу системы.